package com.wgy.day25.HashSet集合;

import java.util.HashSet;
/*
HashSet存储自定义类型的元素时,
需要重写对象中的hashCode和equals方法,建立自己的比较方式,才能保证HashSet集合中的元素的对象唯一

例如: 存储person类到 HashSet集合中
要求: 同名同年龄的人,视为同一个人,只能存储一次
*/

public class Demo02HashSetSavePerson {
    public static void main(String[] args) {
        HashSet<Person> set= new HashSet();
        Person p1=new Person("小美女",18);
        Person p2=new Person("小美女",18);
        Person p3=new Person("小美女",16);
        System.out.println(p1.hashCode());//2129789493
        System.out.println(p2.hashCode());//668386784
        System.out.println(p1==p2);       //false
        System.out.println(p1.equals(p2));//false
        set.add(p1);
        set.add(p2);
        set.add(p3);
        System.out.println(set);
        //[Person{name='小美女', age=18}, Person{name='小美女', age=18}, Person{name='小美女', age=16}]

             //当person 类重写了hashCode和equals方法后,结果就变成是
                  // 734175839
                 //734175839
                //false
              //true
            //[Person{name='小美女', age=18}, Person{name='小美女', age=16}]

    }
}
